/**状态机基类 */
export interface IStateMachine {
  /**操作对象 */
  owner: any;
  /**状态启动 */
  onEnter(obj?);
  /**状态结束 */
  onLeave(newState: number);
  /**更新状态 */
  onUpdate();
  /**获取状态Key */
  getStateKey(): number;
}
/**
 * 状态机扩展管理器
 */
export interface IStateMachineManager {
  /**设置主对象 */
  setOwner(owner: any);
  /**注册状态机 */
  registerState(stateKey: number, state: IStateMachine);
  /**判断是否存在状态 */
  isExist(stateKey): Boolean;
  /**改变状态 */
  changeState(stateKey: number, obj?);
  /**执行更新 */
  update();
  /**获取状态 */
  getCurrentState(): number;
  /**清空状态 */
  clear();
}
